package com.sinothk.gpserver.modules.texasPoker.helper.max5In7;

/**
 * 编写 Liang Y.T.
 * 时间 2021/7/2 14:19
 */

import java.util.*;

public class Test {
    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        List<String> list = new ArrayList<String>();
//        while (scanner.hasNextLine()) {
//            String string = scanner.nextLine();
//            list.add(string);
//
//            if (list.size() == 5) {
//                int r = getCard(list);
//                System.out.println(r);
//                list.clear();
//            }
//
//        }

        List<String> list = new ArrayList<String>();
        list.add("Jc");
        list.add("3c");
        list.add("4c");

        list.add("5c");
        list.add("6c");
        list.add("7c");
        list.add("8h");

        int r = getCard(list);
        System.out.println(r);
    }

    private static int getCard(List<String> list) {
        int temp = 7;
        int size = list.size();
        //
        List<String> numList = new ArrayList<>();
        //
        Set<String> numSet = new TreeSet<>();
        //
        List<String> colourList = new ArrayList<>();
        //
        Set<String> colourSet = new TreeSet<>();

        for (int i = 0; i < list.size(); i++) {
            String num = list.get(i).substring(0, 1);
            String colour = list.get(i).substring(1);

            if (num.equals("J")) {
                numList.add("11");
                numSet.add("11");
            } else if (num.equals("Q")) {
                numList.add("12");
                numSet.add("12");
            } else if (num.equals("K")) {
                numList.add("13");
                numSet.add("13");
            } else if (num.equals("A")) {
                numList.add("14");
                numSet.add("14");
            } else {
                numList.add(num);
                numSet.add(num);
            }

            colourList.add(colour);
            colourSet.add(colour);
        }

        // 同花顺,或者同花
        if (colourSet.size() == 1) {
            Collections.sort(numList);
            for (int i = 0; i < numList.size() - 1; i++) {
                if (Integer.parseInt(numList.get(i + 1)) - Integer.parseInt(numList.get(i)) == 1) {
                    if (i == numList.size() - 2) {
                        temp = 1;
                    }
                    continue;
                } else {
                    if (temp > 4) {
                        temp = 4;
                    }
                }
            }
        }

        // 四条或者葫芦
        if (numSet.size() == 2) {
            Collections.sort(numList);

            // 四条
            if (!numList.get(0).equals(numList.get(1)) || !numList.get(size - 1).equals(numList.get(size - 2))) {
                if (temp > 2) {
                    temp = 2;
                }
            } else {
                if (temp > 3) {
                    temp = 3;
                }
            }
        }

        // 三条
        if (numSet.size() == 3) {
            if (temp > 6) {
                temp = 6;
            }
        }

        // 顺子
        if (colourSet.size() > 1) {
            Collections.sort(numList);
            for (int i = 0; i < numList.size() - 1; i++) {
                if (Integer.parseInt(numList.get(i + 1)) - Integer.parseInt(numList.get(i)) == 1) {
                    if (i == numList.size() - 2) {
                        if (temp > 5) {
                            temp = 5;
                        }
                    }
                } else {
                    break;
                }
            }
        }

        return temp;
    }
}
